#ifndef REGEXP_H
#define REGEXP_H

#include <sys/types.h>

#include <assert.h>
#include <err.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include <pcre.h>

#include <iostream>
#include <iosfwd>
#include <sstream>
#include <string>
#include <list>

#define PCRE_VECTOR 30

class RegExp {
   public:
      RegExp();
      RegExp(const RegExp &);
      RegExp &operator= (const RegExp &);
      ~RegExp();

      void compile(std::string &);
      void compile(const char *);
      std::string search(std::string &);

   protected:
      pcre *_pattern;
      pcre_extra *_patext;
};

#endif

